#pragma once

#include <vector>

#include "GameObject.h"
#include "PlainTexture.h"
#include "Point.h"

namespace game_engine { namespace library
{

/*!
 * \class HUDlife
 * \brief 
 */
class HUDlife : public GameObject
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    UINT32 maxLifes;
    string textureFile;
    INT32 textureType;
    utils::Point position;
    vector<components::PlainTexture*> lifes;

///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and Destructors
    HUDlife(void);
    HUDlife(Scene *scn, const string &n, const string &t, 
        const DrawLevelType d);
    virtual ~HUDlife(void);

    // Others
    void initialize(void);
    void render(void);
    void decrementLifes(void);

    // Getters
    const UINT32 getRemainingLifes(void) const;

    // Setters
    void setMaxLifes(const UINT32 num);
    void setTextureFile(const string &file);
    void setTextureType(const INT32 type);
    void setPosition(const utils::Point &pos);

};

}}
